#include "timerbtn.h"

#include <QDebug>
#include <QMouseEvent>

TimerBtn::TimerBtn(QWidget* parent)
    : QPushButton(parent), _counter(600) // VerifyServer 设置的验证码过期时间是 600s
{
    _timer = new QTimer(this);

    connect(_timer, &QTimer::timeout, [this](){
        _counter--;
        if(_counter <= 0){
            _timer->stop();
            _counter = 10;
            this->setText("获取");
            this->setEnabled(true);
            return;
        }
        this->setText(QString::number(_counter));
    });
}

TimerBtn::~TimerBtn(){
    _timer->stop();
}

//
void TimerBtn::mouseReleaseEvent(QMouseEvent* e){
    if(e->button() == Qt::LeftButton){
        // 在这里处理鼠标左键释放事件
        qDebug() << "MyButton was released!";
        this->setEnabled(false);
        this->setText(QString::number(_counter));
        _timer->start(1000); // 每 1s 执行一次定时事件
        emit clicked(); // qt高版本可能不用 emit 这个了
    }

    // 调用基类的mouseReleaseEvent以确保正常的事件处理（如点击效果）
    QPushButton::mouseReleaseEvent(e);
}

